(function(angular) {
  'use strict';
  angular.module('fs.router').config([
    'routerServiceProvider',
    function(routerServiceProvider) {
      // simpleState:{
      // __ignore : true or false,
      // __inheritController : true or false
      // __dependentFiles : [url or moduleName...],
      // __templateUrl : url,
      // __i18nConfig : url,
      // __layoutConfig : url,
      // __validatorConfig : url,
      // __authorizationConfig : url,
      // subState:{...}
      // }

      // resources/default/nux/view/demo/demoMainPageController.js
      // view/pages/mainPage.html
      var config = {
        path: 'view/pages/fs/',
        ajaxPath: 'js/null.json'
      };

      var simpleConfig = {
        demo: {
          mainPage: {
            __dependentFiles: ['view/controllers/mainPageCtrl/mainPageCtrl.js'],
            templateUrl: 'view/pages/mainPage.html',
            __i18nConfig: 'js/null.json',
            __layoutConfig: 'js/null.json',
            __validatorConfig: 'js/null.json',
            __authorizationConfig: 'js/null.json'
          },
          fsColor: {
            __dependentFiles: [config.path + 'fsColor/fsColorCtrl.js'],
            templateUrl: config.path + 'fsColor/fsColorPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsLabel: {
            __dependentFiles: [config.path + 'fsLabel/fsLabelCtrl.js'],
            templateUrl: config.path + 'fsLabel/fsLabelPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsLink: {
            __dependentFiles: [config.path + 'fsLink/fsLinkCtrl.js'],
            templateUrl: config.path + 'fsLink/fsLinkPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsImage: {
            __dependentFiles: [config.path + 'fsImage/fsImageCtrl.js'],
            templateUrl: config.path + 'fsImage/fsImagePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsText: {
            __dependentFiles: [config.path + 'fsText/fsTextCtrl.js'],
            templateUrl: config.path + 'fsText/fsTextPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsPassword: {
            __dependentFiles: [config.path + 'fsPassword/fsPasswordCtrl.js'],
            templateUrl: config.path + 'fsPassword/fsPasswordPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsTime: {
            __dependentFiles: [config.path + 'fsTime/fsTimeCtrl.js'],
            templateUrl: config.path + 'fsTime/fsTimePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsCheckbox: {
            __dependentFiles: [config.path + 'fsCheckbox/fsCheckboxCtrl.js'],
            templateUrl: config.path + 'fsCheckbox/fsCheckboxPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsCheckboxGroup: {
            __dependentFiles: [config.path + 'fsCheckboxGroup/fsCheckboxGroupCtrl.js'],
            templateUrl: config.path + 'fsCheckboxGroup/fsCheckboxGroupPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsRadio: {
            __dependentFiles: [config.path + 'fsRadio/fsRadioCtrl.js'],
            templateUrl: config.path + 'fsRadio/fsRadioPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsRadioCard: {
            __dependentFiles: [config.path + 'fsRadioCard/fsRadioCardCtrl.js'],
            templateUrl: config.path + 'fsRadioCard/fsRadioCardPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsCard: {
            __dependentFiles: [config.path + 'fsCard/fsCardCtrl.js'],
            templateUrl: config.path + 'fsCard/fsCardPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsTextarea: {
            __dependentFiles: [config.path + 'fsTextarea/fsTextareaCtrl.js'],
            templateUrl: config.path + 'fsTextarea/fsTextareaPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsSelect: {
            __dependentFiles: [config.path + 'fsSelect/fsSelectCtrl.js'],
            templateUrl: config.path + 'fsSelect/fsSelectPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsDate: {
            __dependentFiles: [config.path + 'fsDate/fsDateCtrl.js'],
            templateUrl: config.path + 'fsDate/fsDatePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsDateRange: {
            __dependentFiles: [config.path + 'fsDateRange/fsDateRangeCtrl.js'],
            templateUrl: config.path + 'fsDateRange/fsDateRangePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsCalendarDay: {
            __dependentFiles: [config.path + 'fsCalendarDay/fsCalendarDayCtrl.js'],
            templateUrl: config.path + 'fsCalendarDay/fsCalendarDayPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsNumber: {
            __dependentFiles: [config.path + 'fsNumber/fsNumberCtrl.js'],
            templateUrl: config.path + 'fsNumber/fsNumberPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsNumberRange: {
            __dependentFiles: [config.path + 'fsNumberRange/fsNumberRangeCtrl.js'],
            templateUrl: config.path + 'fsNumberRange/fsNumberRangePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsMoney: {
            __dependentFiles: [config.path + 'fsMoney/fsMoneyCtrl.js'],
            templateUrl: config.path + 'fsMoney/fsMoneyPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsMoneyRange: {
            __dependentFiles: [config.path + 'fsMoneyRange/fsMoneyRangeCtrl.js'],
            templateUrl: config.path + 'fsMoneyRange/fsMoneyRangePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsPercentage: {
            __dependentFiles: [config.path + 'fsPercentage/fsPercentageCtrl.js'],
            templateUrl: config.path + 'fsPercentage/fsPercentagePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsPercentageRange: {
            __dependentFiles: [config.path + 'fsPercentageRange/fsPercentageRangeCtrl.js'],
            templateUrl: config.path + 'fsPercentageRange/fsPercentageRangePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsTypeahead: {
            __dependentFiles: [config.path + 'fsTypeahead/fsTypeaheadCtrl.js'],
            templateUrl: config.path + 'fsTypeahead/fsTypeaheadPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsSensitive: {
            __dependentFiles: [config.path + 'fsSensitive/fsSensitiveCtrl.js'],
            templateUrl: config.path + 'fsSensitive/fsSensitivePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsCustomerSelect: {
            __dependentFiles: [config.path + 'fsCustomerSelect/fsCustomerSelectCtrl.js'],
            templateUrl: config.path + 'fsCustomerSelect/fsCustomerSelectPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsMultipleSelect: {
            __dependentFiles: [config.path + 'fsMultipleSelect/fsMultipleSelectCtrl.js'],
            templateUrl: config.path + 'fsMultipleSelect/fsMultipleSelectPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsLookupText: {
            __dependentFiles: [config.path + 'fsLookupText/fsLookupTextCtrl.js'],
            templateUrl: config.path + 'fsLookupText/fsLookupTextPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsLookupMultiple: {
            __dependentFiles: [config.path + 'fsLookupMultiple/fsLookupMultipleCtrl.js'],
            templateUrl: config.path + 'fsLookupMultiple/fsLookupMultiplePage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsFileUpload: {
            __dependentFiles: [config.path + 'fsFileUpload/fsFileUploadCtrl.js'],
            templateUrl: config.path + 'fsFileUpload/fsFileUploadPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsButtons: {
            __dependentFiles: [config.path + 'fsButtons/fsButtonsCtrl.js'],
            templateUrl: config.path + 'fsButtons/fsButtonsPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          },
          fsButton: {
            __dependentFiles: [config.path + 'fsButton/fsButtonCtrl.js'],
            templateUrl: config.path + 'fsButton/fsButtonPage.html',
            __i18nConfig: config.ajaxPath,
            __layoutConfig: config.ajaxPath,
            __validatorConfig: config.ajaxPath,
            __authorizationConfig: config.ajaxPath
          }
        }
        // error: {
        //   E500: {
        //     __inheritController: false,
        //     __i18nConfig: 'js/null.json',
        //     __layoutConfig: 'js/null.json',
        //     __validatorConfig: 'js/null.json',
        //     __authorizationConfig: 'js/null.json'
        //   },
        //   E404: {
        //     __inheritController: false,
        //     __i18nConfig: 'js/null.json',
        //     __layoutConfig: 'js/null.json',
        //     __validatorConfig: 'js/null.json',
        //     __authorizationConfig: 'js/null.json'
        //   }
        // }
      };
      routerServiceProvider.setSimpleStates(simpleConfig, 'poi');
      // routerServiceProvider.setHomeUrl('demo/mainPage');
    }
  ]);
})(angular);
